--声明一个函数用于测试
function F0()
	local i =0 ;
	while true do
		i =i+1;
		print(i);
		coroutine.yield(114514);--这里相当于挂起程序不再执行下一次while,是可以有返回值的
	end
end

function F1()
	local i =0 ;
	while true do
		i =i+1;
		print(i);
		coroutine.yield(224514);--这里相当于挂起程序不再执行下一次while,是可以有返回值的
	end
end

--协程创建 有两种

	--1.coroutine 返回协程对象的协程
co0= coroutine.create(F0);
	--启动协程 接受其返回值 isOk是协程yield的返回值 执行ture或者false
isOk,retrunVlaue =coroutine.resume(co0);
print(isOk,retrunVlaue); --打印true 和 114514
	--其本质是一个线程对象 thread
print(type(co0))

	--2.像是函数一样调用协程
co1	= coroutine.wrap(F1);
	--启动协程 接受其返回值
resulet1 = co1();
--这样子使用没有isOk的默认返回值
print(resulet1);
	--其本质是一个函数 function
print(type(co1))

--协程的状态 有三种
--coroutine.status()
--suspended 暂停
--dead 死掉了
--running 进行中
print(coroutine.status(co0));
--print(coroutine.status(co1)); 这样子不行 传入的是协程对象


--协程的运行线程号 没有运行就是nil
print(coroutine.running(co0));

